Description:
IR detects situations where infinite recursion occurs during program execution.
Incorrect:
Buffer = class;
List = class
private
buf:Buffer;
public
function size():integer;
end;
Buffer = class
private
list:List;
public
constructor Create(list:List);
function size():integer;
end;
...
function List.size():Integer;
begin
result := buf.size();
end;
constructor Buffer.Create(list:List);
begin
inherited Create;
self.list := list;
end;
function Buffer.size():Integer;
begin
result := list.size();
end;